[ISSUE-137] Python bindings row-based append API#142
Merged
luoyuxia merged 5 commits intoapache:mainfrom Jan 17, 2026
Merged
Conversation
Contributor
Author
|
@luoyuxia PTAL, when comfortable 🙏 |
There was a problem hiding this comment.
Pull request overview
This PR adds a row-based append API to Python bindings, enabling single-row inserts with support for dict, list, and tuple input formats. This provides a more ergonomic alternative to batch operations for streaming use cases and real-time ingestion.
Changes:
- Added
append()method toAppendWriterclass supporting dict, list, and tuple input formats - Implemented type conversion logic from Python values to Fluss
Datumtypes with strict validation - Added Python patterns to
.gitignoreto exclude build artifacts
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| bindings/python/src/table.rs | Adds append() method, row input conversion logic, and Python-to-Datum type mapping with validation |
| bindings/python/fluss/init.pyi | Adds type stubs and comprehensive documentation for the new append() method |
| bindings/python/example/example.py | Demonstrates usage of new append() API with dict and list inputs |
| .gitignore | Adds Python-specific ignore patterns for build artifacts |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
luoyuxia
reviewed
Jan 16, 2026
Contributor
luoyuxia
left a comment
There was a problem hiding this comment.
@fresh-borzoni Hi, thanks for the pr. Just left two question
Contributor
Author
|
@luoyuxia Thanks for the review! Addressed comments. |
luoyuxia
approved these changes
Jan 17, 2026
Contributor
luoyuxia
left a comment
There was a problem hiding this comment.
@fresh-borzoni Thanks for the pr. LGTM!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Linked issue: close #137
Adds a Python
append()method to enable single-row inserts with support for dict, list, and tuple input formats, providing a more ergonomic API for appending individual rows compared to batch operations.Brief change log
append()method to PythonTableclass with support for dict, list, and tuple inputRowInputenum withFromPyObjectderive for automatic type dispatchpython_to_generic_row()function to convert Python values toGenericRowwith strict validationpython_value_to_datum()function with type-specific conversions, optimized bytes extraction, and field-level error messages.gitignoreto exclude__pycache__/and*.sofilesAPI and Format
API Changes: Yes
Table.append(row)acceptingdict | list | tupleStorage Format: No changes
Documentation
New Feature: Yes
__init__.pyiexample/example.py